#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
class STRING {
private:
char *S[10];
public:
STRING();
void set_str(int n, const char* str1);
char* get_str(int n);
};
STRING :: STRING(){
for (int i=0; (i < 9); i ++ ){
S[i] = '\0';
cout << S[i];
}
}
void STRING :: set_str(int n,const char*str1) {
S[n] = (char*)malloc(strlen(str1 + 1));
strcpy(S[n], str1);
cout << S[n];
}
char* STRING :: get_str(int n){
return S[n];
}
int main () {
cout << " Init \n";
STRING* str = new STRING();
cout << "Error \n";
return 0;
このプログラムは正常にコンパイルされ、実行されますが、実行すると、オブジェクトSTRING* str = new STRING();の初期化の前にのみ機能します。. したがって、この場合はエラーメッセージが表示されません。誰かが私の間違いを指摘してくれませんか?文字列の配列を初期化するより良い方法があれば、喜んでお知らせします。
私の目標は、文字列の配列を初期化することです。そして、最初に配列全体の値を NULL に設定します。よろしく