私はこのサイトで、可変長配列は許されていませんが、gccでは可能です。だから、私は小さなコードgccで可変長配列を使用するには?
#include<stdio.h>
#include<stdint.h>
void main()
{
int8_t n;
int8_t var_array[n];
int8_t i;
printf("Enter array size: \r\n");
scanf("%d", &n);
for(i=0; i<n; i++)
var_array[i] = i;
for(i=0; i<n; i++)
printf("var_array[%d] = %d\r\n", i, var_array[i]);
}
をテストしたいコードは、Linux OSの「gccのvar_array.c -o var_array」コマンドでコンパイルしますが、私はそれを実行したとき、私は
Enter array size:
5
Segmentation fault
セグメンテーションフォールトエラーが表示されます
私は間違って何をしていますか?
*このサイトでは、可変長配列はC++で許可されていないと読んでいます。* - いいえ、この "サイト"ではありません。これらは、標準委員会によって設定されたC++の規則です。 C++配列では、変数ではなく、項目の数を表す定数式を使用する必要があります。 – PaulMcKenzie
@PaulMcKenzieなぜあなたは平均的な男に出くわす必要がありますか?私の評判から、私は新人だと言うことができます。あなたは私が "このサイトで読む"という意味を知っています – KharoBangdo
あなたは 'n'に値を与える前に、配列サイズを' n' **に設定しています。その時点ではおそらく**ゼロ**です(ただし何でも構いません)。 – Galik