【发布时间】:2011-02-25 13:41:10
【问题描述】:
我正在尝试将结构指针写入文件。我想要做的是将结构指针写入字符缓冲区,然后从缓冲区中检索指针,最后将整个结构写入文件。
我没有编写整个结构,而是在文件中获取垃圾数据。
我是在代码中遗漏了什么还是犯了一些错误。
完整粘贴我的测试代码。
#include <stdio.h>
# include<stdlib.h>
#include <string.h>
typedef struct dummy_s {
int a;
} dummy_t;
void main(int argc, char* argv)
{
char *s1;
s1 = malloc(sizeof(dummy_t)*1000);
dummy_t * tmp1;
tmp1 = (dummy_t *)s1;
tmp1 -> a = 100;
FILE *f;
f = fopen("dummyfile.txt","w");
dummy_t * tmp = NULL;
tmp = malloc(sizeof(dummy_t));
memcpy(tmp, s1, sizeof(dummy_t));
fwrite(tmp,sizeof(struct dummy_s),1,f);
fclose(f);
}
[因编译错误而编辑 - 抱歉] 干杯! 娜仁
【问题讨论】:
-
那个 fwrite() 调用甚至编译...? (我手边没有 C 编译器。)
-
一堆疯狂的操作...
-
memcpy(tmp, d, sizeof(dummy_t)); 中的“d”是什么?
-
我也在想同样的事情。也许他的意思是s1?
标签: c pointers data-structures file-io