既知のサイズの配列を宣言しましたが、
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 は に保存されます。info
height+1
char_per_line
output_buffer[2]
output_buffer[2]
タイプのポインタではないここで混乱していchar*[height+1]
ますか?では、メモリのアドレスをそこに割り当てることができないのはなぜmalloc
ですか?
また、配列を配列に割り当てることができないことはわかっていますが、コードを希望どおりに機能させるにはどうすればよいですか? char**
解決策がasを使用することである場合、char*[height+1]
どうすれば にアクセスできますinfo->buffer[height]
か?
前もって感謝します!