是否有可能在C语言中运行时错误指针异常?

我正在使用下面的编译器。

注意:Microsoft Visual C ++编译器

下面的示例程序。

#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include <Windef.h>

typedef struct tagTest{
int i;
char *str;
}   Test,
    FAR *LPTest,
    FAR **LLPTEST;

 extern LLPTEST m;

 int main()
 {

  int i;

  LLPTEST m = NULL;

  m = (LLPTEST)malloc(sizeof(LLPTEST));

  // Here We Check m[0] memory allocated or not ?
  // example: if(m[0]), or if(m[0]->i) any other idea. here m[0] is CXX0030 error expression cannot be evaluated.

  /* allocate memory */
  for(i=0; i<10; i++)
  {
     m[i] = (LPTest) malloc(sizeof(Test));
     m[i]->i = i;
     m[i]->str = (char*) malloc(10*sizeof(char));
     m[i]->str = "Test";
 }

 return 0;
}

最佳答案

不。C不支持异常,因此没有什么可以抓住的。您看到的不是“坏指针异常”,而是内存访问错误-无法从中恢复。

07-24 09:45