簡體   English   中英

為什么這段代碼會出現分段錯誤?

[英]Why does this code give 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;
  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;
  }

}    
char ** cArray;

cArray是指向指針的非主題指針。 你無法取消引用它。

*(cArray + i) = "string";

cArray未初始化。 糾正這個。

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

cArray變量似乎沒有初始化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM