Cでグローバル変数に問題があります。Cで文字列の配列を作成する必要があります。文字列の数は、シェルによって渡された引数(number_of_string = atoi(argv[1])
) 。だから私はこれを行う最善の方法は、number_of_strings
ポインタの配列であると思う。この配列のすべての要素は、mallocでdinamically予約されているメモリのセクションを指します。主な問題は、グローバル変数としてmain(argv [1]がまだ存在しない)の実行前に配列のサイズを定義する必要があることです。私はこれをどのように解決できるかわかりません。誰でも助けてくれますか?C言語のシェルからグローバルCHAR配列を宣言
0
A
答えて
0
これは問題を解決しますか?
#include <stdlib.h>
char **strings;
int main(int argc, char **argv)
{
int size;
int i;
if (argc < 2)
return 1;
size = atoi(argv[1]);
if (size <= 0)
return 2;
strings = malloc(sizeof(char*)*size);
for (i = 0 ; i < size ; i++) {
strings[i] = malloc(sizeof(char)*100);
}
// You now have argv[1] 100-byte strings (don't forget about NULL terminators)
}
+0
ありがとうございます。問題が解決しました!。 – HastatusXXI
+0
それらすべてを無料で忘れないでください。 – WPomier
関連する問題
- 1. C charの配列を宣言する*
- 2. グローバル配列の宣言と使用c#
- 3. c#配列宣言構文vs C++配列宣言構文
- 4. 宣言時にchar配列を別のconst char配列にコピー
- 5. C言語で巨大な配列をローカルに宣言する
- 6. Googleスプレッドシートでグローバル配列を宣言
- 7. PHPでグローバル配列を宣言する
- 8. Ncurses c/C++ - getstr()宣言されていないchar配列
- 9. 大規模配列のグローバル宣言はどのようにC言語で動作するのですか?
- 10. C言語の2つのchar配列の内容を比較
- 11. C言語のchar配列の内容を確認
- 12. Cでの構造体と多次元配列のグローバル宣言
- 13. C言語のchar配列を使ったバスエラー
- 14. エラーメッセージC言語での変数宣言
- 15. ポインタ宣言とCの有限配列宣言
- 16. "char values"を配列に格納したい(C言語で)
- 17. C言語の宣言時に2次元配列を初期化する
- 18. cの文字列配列宣言
- 19. 型宣言エラー:[Char]と[[Char]]
- 20. シェルコードをchar []配列として宣言するときとchar *を宣言するときの違いは?
- 21. グローバル配列内の要素の位置を指すグローバル変数(C言語)
- 22. C言語でchar配列をint型2d配列に変換する
- 23. Jプログラミング言語での配列言語
- 24. Cの構造体宣言の配列
- 25. C#ユーザーのint配列の宣言
- 26. cでのサイズ配列の宣言
- 27. 宣言的言語のXSLT
- 28. Strcpy()配列宣言?
- 29. cpp charの文字列の宣言
- 30. Pythonとグローバル宣言
なぜ実行する前に配列のサイズを定義する必要がありますか?論理的な観点からは、実行時に文字列の数だけを知っていれば、それがどうなるのだろうか?ポインタを定義し、 'malloc'を使用して文字列ポインタを割り当てます。 – Downvoter
'char ** strings'。 'string = malloc(sizeof(char *)* atoi(argv [1]));'各 'string [x]'は 'malloc(sizeof(char)*);'の結果です。何らかの理由でグローバル化したい場合は、 'char ** strings'をグローバルに定義してください。これを前に 'main()'で述べたように、または適切なところで初期化します。 –
eddiem
これは並行処理の練習です。私は循環バッファを作成しなければなりません。そこでは、ユーザーが決めた数の文字列(シェルで番号を渡す)を保存します。これは、プログラムを終了するために欠けている部分です。 – HastatusXXI