在简单函数中处理C中可能出现的错误
我有以下代码:在简单函数中处理C中可能出现的错误,c,error-handling,C,Error Handling,我有以下代码: // global variables count = 0; char arr[50][5]; main(){ // do something } init(){ count = 0; memset (arr, 0, sizeof(arr)); } 如果init()成功,我需要返回1,否则返回0。但是,我看不出init()在技术上是如何失败的。如何在init()中实现此错误处理程序?有两个问题: 如果不想返回任何内容,则无需返回任何内容,只需将函数设为v
// global variables
count = 0;
char arr[50][5];
main(){
// do something
}
init(){
count = 0;
memset (arr, 0, sizeof(arr));
}
如果init()成功,我需要返回1,否则返回0。但是,我看不出init()在技术上是如何失败的。如何在init()中实现此错误处理程序?有两个问题:
- 如果不想返回任何内容,则无需返回任何内容,只需将函数
设为void
- 您不需要init函数,因为
已经0初始化,因为它有静态存储(全局变量)arr
/* XXX No other return code is possible. */
return 0;
哦,我忘了提到这是一个家庭作业问题。基本上main()可以修改count和arr,在某个时刻,我需要使用init()重新初始化全局变量。根据写的内容,我必须在init()中返回1或0,这取决于是否有错误……所以memset总是工作的?我是否应该反复检查一下self。建议?在这种情况下是否可能出现分段错误?@Mariska如果
memset
失败,那么它会灾难性地失败(例如,进程崩溃),通常是因为它没有被正确调用。我认为重新检查数组以查看memset
是否完成了它的工作没有任何价值。