我遇到了一些指针问题(我对编码很新)。在main()中,我试图通过with open("/tmp/image.jpg", "w") as f:
PIL.Image.fromarray(a).save(f, "jpeg")
初始化我的员工名单,这样我就可以打印它(下面没有包含该功能),但每当我尝试CodeBlocks时就关闭了。我查了很多关于指针的信息,但似乎很少有人处理数组/结构,所以任何帮助都会受到赞赏。不幸的是,我确定我有很多错误。
/tmp/image.jpg
答案 0 :(得分:2)
最大的问题在于这两行:
pRoster = (workerT*)malloc(sizeof(workerT) * maxRoster);
pRoster = NULL;
在第一行中,您分配内存并将其分配给pRoster
,但在下一行中,您将pRoster
重新分配为空指针。稍后在initWorkerArray
函数中取消引用空指针将导致undefined behavior。这次UB的最可能结果是崩溃。
此外,in C you should not cast the result of malloc
或任何其他返回void *
的函数。如果您包含正确的头文件,这不会导致任何问题,但您仍然不应该这样做。
答案 1 :(得分:2)
此外,在initWorkerArray中,从未分配strcpy(pList [1] ...)和strcpy(pList [2] ...),pList [1] .pName等的调用,因此这些strcpy调用会崩溃。