現在、私はValgrindを使用してメモリリークをチェックし、Purifyを代わりに使用しています。 Valgrindはヒープで作成された配列のアクセス違反を知ることができますが、スタックにはアクセスできません。スタック変数のアクセス違反を調べることができますか?
char* a = static_cast<char*>(malloc(sizeof(char) * 5));
a[7] = 'c';
printf("%c\n", a[7]);
free(a);
上記のコードでは無効な書き込みおよび読み取りのValgrindポイントですが、次のコードは無効です。
char a[5] = {0};
a[7] = 'c';
printf("%c\n", a[7]);
両方のコードブロックのアクセス違反を特定できますか?