如下列,后面的没写上去,最后一行显示访问冲突(for循环内的那个),求教什么情况。
#include<stdio.h>
#include<string.h>
int main()
{
int quantity=0;
char** arr1, ** arr2;
char** arr3;
printf("How many words do you wish to enter?\n");
scanf("%d", &quantity);
arr1 = (char **)malloc(sizeof(char*) * quantity);
arr2 = (char **)malloc(quantity*sizeof(char*));
arr3 = (char **)malloc(sizeof(char*) * quantity);
for (int t = 0; t < quantity; t++)
{
arr2[t] = (char *)malloc(sizeof(char)*20);
}
malloc函数定义于头文件stdlib.h,需要包含此头文件。
经此修改后,使用正常:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{ int quantity=0;
char** arr1, ** arr2;
char** arr3;
printf("How many words do you wish to enter?\n");
scanf("%d", &quantity);
getchar();
arr1 = (char **)malloc(sizeof(char*) * quantity);
arr2 = (char **)malloc(quantity*sizeof(char*));
arr3 = (char **)malloc(sizeof(char*) * quantity);
for (int t = 0; t < quantity; t++)
{ arr2[t] = (char *)malloc(sizeof(char)*20);
gets(arr2[t]);
puts(arr2[t]);
}
return 0;
}
本回答被提问者和网友采纳arr2[t] = (char *)malloc(sizeof(char)*20);
本回答被网友采纳