为什么我VC++的程序从来没有编译通过过

2025-03-30 06:21:36
推荐回答(2个)
回答1:

我虽然没有看到你的 C 语言源程序,但是根据我的编程经验,你可以检查一下你的源程序中是否使用到了内存分配(例如:calloc( )、malloc( ))、以及内存释放(free( ))库函数?如果涉及到了这些库函数的话,那么你再仔细检查一下:你是否对相应的指针变量进行了判断(即:若内存分配失败的话,返回的是一个空指针 NULL)?如果没有这个重要的、关键的语句,那么程序在运行的时候必然会产生崩溃的!!即如下代码,例如:
#include /* malloc( ) 库函数、free( ) 库函数在此头文件中定义 */
#include /* strcpy( ) 库函数在此头文件中定义 */
void main( )
{
char * p ;
p = (char *)malloc(10000)*sizeof(char) ; /* 为字符指针变量 p 动态分配内存 */
if( p == NULL )
{ /* 该段判断语句必不可少!若内存分配失败,退出应用程序 */
printf("Memory allocation failured !\n");
exit(1) ;
}
strcpy(p, "This is a TEST STRING." ) ; /* 若分配内存成功,将字符串拷贝到字符指针变量 p 中 */
printf("p value is : %s\n", p ) ;
free( p ) ; /* 释放内存 */
}

回答2:

朋友,我来告诉你答案!直接崩溃原因很主要关注内存是否越界