C、 结构malloc和指针.我迷路了



好吧,我有点被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()的返回值

最新更新