セグメント化エラーが発生している次のコードを実行しようとしています。私は何をしているのですか?このコードは他の方法で実装できますか?次のコードでセグメント化エラーが発生しています
コード:あなたは文字列定数に
struct
が割り当てられて持っているstruct A x;
の使用とするだけでなく、ポインタを割り当てるためconst char *
の
使用:ここで
#include <iostream>
#include "string.h"
using namespace std;
struct A {
char* a;
};
int main()
{
struct A *x;
x->a = "soumya";
char* str = "soumya";
cout<<str<<endl<<(char*)x->a<<endl;
// if(strcmp(x->a,str)!=0)
// {
// cout<<"not same"<<endl;
// }
return 0;
}
ないC++の第一人者でなければなりませんが、私はあなたがそれを初期化する前に、変数を利用しようとしているように見える推測していた(と場合、私はそれが可能だろうか分かりませんコード体の中の 'struct'キーワードの正しい使い方) – Rogue
' struct A * x; '//初期化されていないワイルドポインタ ' x-> a = "soumya"; '//災害への招待;プロセス空間外のアドレスにアクセスし、OS 'A * x = new A 'によって発行されたセグメンテーションフォールトで終わり、後で' delete A'を使用してメモリリークを回避します。 – vivekn
[セグメンテーションフォルトの一般的な理由の確定リスト]の可能な複製(http://stackoverflow.com/questions/33047452/definitive-list-of-common-reasons-for-segmentation-faults) – Barmar