我有动态分配的一些问题,因为我不想指定数组的大小。基本上我在我的程序中需要的是将一个文件的名称存储在一个数组中,并确保它不会浪费空间。如何在C中动态分配名称数组?
我试图做类似创建阵列name[255]
,以确保它有足够的空间,然后动态地分配它,所以它只有所需的空间,就像写“matrix5”,然后将其存储在name[255]
然后更改name[255]
到name[8]
。
char file_name[255];
printf("what is the name of the file? [.txt]\n");
scanf_s(" %s", file_name[255]); //store name eg: "matrix5"
i = 0;
char **fullpath;
while (file_name[i] != '\0' && i <=strlen(file_name))
{
fullpath= (char**)malloc(sizeof(char*)); //In here it would then make file_name[255] into file_name[8]
fullpath[i] = file_name[i];
i++;
}
我需要在这里做什么?
发布您使用的代码,样本输入和预期输出。 – chux
一如既往,'scanf_s()'使用不正确。 – EOF
'scanf_s(“%s”,file_name);'缺少长度参数。 – chux