ポインタのポインタの使い方
文字列の途中からの部分を表示させる場合もあって、途中からの
位置というのをcahr**型の配列に記憶させることにしました。
ポインタとnewがよく分からないから、それに近いサンプルを
作って実験しているところです。
#include <iostream.h>
main()
{
char selected[][6] = {"full", "nomal", "short"};
char *buf;
char **p;
buf = new char[500];
strcpy(buf, ",東京都,千代田区,九段南");
p = new char*[3];
for(unsigned int i=0, j=0; i<strlen(buf); i++)
{
if(buf[i] == ',')p[j++] = &buf[i+1];
}
for(int i=0; i<3; i++)
{
cout << selected[i] << "-" << p[i] << endl;
}
delete [] buf;
delete [] p;
}
結果は
full-東京都,千代田区,九段南
nomal-千代田区,九段南
short-九段南
で、問題なさそうに見えるけど心配だから質問しました。
このソースに問題はないですか?
得に、
char **p;
と
p = new char*[3];
と
p[j++] = &buf[i+1];
と
delete [] buf;
が心配です。