既知のサイズの配列を宣言しましたが、
typedef struct{
......
char * buffer[height+1]; //height is a constant int
......} args;
int main{
args * info;
info = malloc (sizeof(args));
char* output_buffer[width][height+1]; //width is also a constant int >= 4
output_buffer[2] = malloc (sizeof(char)*char_per_line*(height+1)); // error same as below
info->buffer = output_buffer[2]; // I know it's wrong. incompatible types in assignment
....}
数値は任意であり、説明のために使用されています。
私がやっていることは、 to のアドレスを割り当ててoutput_buffer[width]から、サイズの配列のデータを生成するスレッドに引数としてinfo->buffer渡すことです。各スロットには、長さの cstring があります。これらの cstring は に保存されます。infoheight+1char_per_lineoutput_buffer[2]
output_buffer[2]タイプのポインタではないここで混乱していchar*[height+1]ますか?では、メモリのアドレスをそこに割り当てることができないのはなぜmallocですか?
また、配列を配列に割り当てることができないことはわかっていますが、コードを希望どおりに機能させるにはどうすればよいですか? char**解決策がasを使用することである場合、char*[height+1]どうすれば にアクセスできますinfo->buffer[height]か?
前もって感謝します!