gpt4 book ai didi

c - 为什么这个程序会出现运行时错误?

转载 作者:行者123 更新时间:2023-11-30 19:22:45 25 4
gpt4 key购买 nike

#define String char*
#define FileP FILE*
#define null ((void*) 0)
#include "defs.h"

int main(int argc, char** argv) {

Stack stack;
init(&stack);

FileP file = readp("Props.props");

if (file == null){
printf("Unable to Load\n");
exit(1);
}

String buffer;
int m = 0;
char ch;

while (!feof(file)) {
ch = getc(file);
if (ch != ' ') {
*(buffer + (m++)) = ch;
} else {
push(&stack, buffer);
m = 0;
}
}

int i;

for (i = 0; i < MAX_SIZE; i++) {
printf("%s\n", pop(&stack));
}

fclose(file);

return 0;

}

defs.h 包含所有 #define,但我将它们包含在这里,以便您知道它们是什么。该程序打开一个名为“props.props”的文本文件并读取每个字符串,然后将它们存储到堆栈中,最后打印堆栈。运行时没有任何反应,只是由于运行时错误而退出。为什么会发生这种情况?

最佳答案

buffer 未初始化。您需要分配内存

buffer = (char*) malloc(n * sizeof (char));

其中 n 是您需要存储的字符数。此外,该文件似乎没有在任何地方打开(fopen)。什么是readp

关于c - 为什么这个程序会出现运行时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15306691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com