【发布时间】:2019-01-04 11:50:43
【问题描述】:
我试图制作一个程序来动态分配内存以使用指针存储多个字符串,但它似乎无法正常工作。
#include <stdio.h>
#include<conio.h>
void main()
{
FILE *fp;
int num;
printf("enter no of students");
scanf("%d",&num);
char *names = (char*) malloc(num * 100 * sizeof(char));
printf("enter the names");
fp = fopen("file.txt","w");
for (int i = 0; i < num; i++)
{
fgets(*(names + i * 100), 100, stdin);
fprintf(fp, "%s\n", (names + i * 100));
}
fclose(fp);
fp = fopen("file.txt", "r");
printf("names stored in *ptr");
}
【问题讨论】:
-
您只分配了一个数组。我相信您需要一个
char **names变量,然后分配 100 个 100 个空格的数组...或者,您可以在读取输入时重用该数组...
标签: c string pointers malloc file-handling