好吧,我有点被malloc和structs卡住了,看起来>p
#include ****
#include "func.h"
int main()
{
struct fileData *fileData = (struct fileData*)malloc(sizeof(struct fileData));
fileData->filePath = "text";
printf(%cn, *fileData->filePath);
}
在func.h文件中:
#ifndef func
#define func
typedef struct fileData
{
char *filePath;
char *input;
int *numbers;
}
它只打印第一个"T",然后程序停止,我不知道它应该是什么样子,我已经试了一段时间了,哈哈
我想做的是有一个包含程序运行后选择的文件路径的结构,然后读取该文本文件并用整个输入填充char*输入,然后从输入中收集所有数字并将其存储为数字中的int。。我已经有了运行tho的函数。。我可以从文件中读取,只是在运行结构时遇到问题。
这:
printf(%cn, *fileData->filePath);
不会编译,第一个参数周围没有任何引号。
修复它,我们得到:
printf("%cn", *fileData->filePath);
它将只打印一个字符,即通过跟随fileData->filePath
指针找到的字符。
如果你想打印全名,你应该使用%s
:
printf("%sn", fileData->filePath);
请注意星号是如何删除的,因为现在我们将字符串的第一个字符的地址传递给printf()
。
此外,请不要在C.中强制转换malloc()
的返回值