我制作了一个指向字符串的指针数组,并且发生了这个问题
我的代码有什么问题
char x[50];
int num = 0;
int i = 0;
char* arrs;
printf("Enter number");
scanf("%d", &num);
arrs = (char*)malloc(sizeof(char) * num);
getchar();
for (i = 0; i < num; i++)
{
printf("Enter str number %d\n" , i);
fgets(x, 50, stdin);
*(arrs+i) = (char)malloc(sizeof(char) * strlen(x));
strcpy((arrs+ i), x);
}
最佳答案
问题是您正在为字符数组而不是字符串数组分配内存,这是字符指针。只需将 sizeof(char)
更改为 sizeof(char *)
关于c - 如何修复它? CRT 检测到应用程序在堆缓冲区结束后写入内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36597107/