Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么这段代码会给出分段错误?_C++_Pointers_Segmentation Fault - Fatal编程技术网

C++ 为什么这段代码会给出分段错误?

C++ 为什么这段代码会给出分段错误?,c++,pointers,segmentation-fault,C++,Pointers,Segmentation Fault,我写了一个小例子来测试我对指针和内存的理解,但我确信这会起作用,但它给出了seg错误。。。知道我做错了什么吗添加:我将此代码与其他代码一起运行。 #include <iostream> using namespace std; struct Card { int a; Card(int a) : a(a) { } }; int main() { int **p; int **p2; int *a; int b =3; char ** cArray

我写了一个小例子来测试我对指针和内存的理解,但我确信这会起作用,但它给出了seg错误。。。知道我做错了什么吗添加:我将此代码与其他代码一起运行。

#include <iostream>
using namespace std;

struct Card {

  int a;
  Card(int a) : a(a) { }

};

int main() {

  int **p;
  int **p2;
  int *a;
  int b =3;
  char ** cArray;
  Card **c = new Card*[5];
  for (int i = 0; i<5; i++)
     c[i] = new Card(1);


  a = &b;
  for (int i = 0; i< 10; i++) {
    p = &a;
    //  p2[i] = new int;
    *(cArray + i) = "string";
    cout << cArray[i]<< endl;
  }



  for (int i = 0; i< 10; i++) {
    // p2[i] = a; 
    cout << *a << endl;
  }

}    
#包括
使用名称空间std;
结构卡{
INTA;
卡片(INTA):a(a){}
};
int main(){
int**p;
int**p2;
int*a;
int b=3;
char**cArray;
卡片**c=新卡片*[5];

对于(int i=0;i
cArray
未初始化。请更正此问题

char ** cArray = new char*[10];

cArray
未初始化。请更正此问题

char ** cArray = new char*[10];

cArray变量似乎未初始化。

cArray变量似乎未初始化

char ** cArray;
cArray
是指向指针的未初始化指针。您不能取消引用它

*(cArray + i) = "string";
cArray
是指向指针的未初始化指针。您不能取消引用它

*(cArray + i) = "string";

它适用于我-您使用的是什么编译器和操作系统?您能发布实际的seg错误消息吗?@标记除内存泄漏外,代码没有问题。这不适用于我(在g++/Linux上).在这里可以正常工作…你确定你复制/粘贴正确吗?我找不到SEGFULT的来源。我认为这是因为卡,因为当我删除它时,SEGFULT消失了…它对我有效-你使用的是什么编译器和操作系统?你能发布实际的seg错误消息吗?@除了内存泄漏之外,标记代码没有问题。这是does不适合我(在g++/Linux上).在这里工作正常…你确定你复制/粘贴正确吗?我找不到segfault的来源。我认为这是因为卡,因为当我删除它时,segfault消失了…为什么当我从main中删除卡部件时没有seg fault?分段错误是具有未定义行为的运行时错误。如果你不走运,它会出现表现得好像一切都正常。为什么我从main中移除卡部件时没有seg故障?分段故障是具有未定义行为的运行时错误。如果您运气不好,则表现得好像一切都正常。