ポインタ配列の要素に文字列を入れるとエラー
解決したいこと
ポインタ配列に文字列を入れるとメモリ関連のエラーが出ます。
していること:
文字列を記号で分割して、ポインタ配列の各要素に入れていく。
発生している問題・エラー
// 文字列とセパレーター
char str[] = "aa,bbb,cccc";
char sep = ',';
// 文字列保存用
char tmp[100]; // ポインタ配列の1行分
char* tmp2[4]; // ★ポインタ配列
// 文字列を末尾までループで回して・・・
for (int i = 0, j = 0; str[i] != '\0'; ++i) {
// 文字が sep であれば、そこまでの文字列をポインタ配列に入れる
if (str[i] == sep) {
tmp2[j] = tmp; // ★ここでメモリ関連の警告が出る
j++;
continue;
}
tmp[i] = str[i];
}
crtisvalidheappointer(block) エラー
または「動作を停止しました」
なぜ問題があるのか、さっぱり分かりません。
※tmpではなく、直接tmp2[j][i]にも入れましたが同じ問題が発生します。
※char** tmp2 でも同じようなエラーが出ます。
0