スタックに追加するアイテムの量を動的に渡すことにより、StackADTのテスターを作成しようとしています。ただし、たとえば22の整数を渡そうとすると、グローバル変数(ITEMS)が50として割り当てられます。他の何かを試してみると、範囲は45〜55です。
私の主な機能はこれです:
int main(int numArgs, char* numItems[]) {
Stack stack;
if (numArgs == 0) {
printf("Good job, you broke C.\n");
} else if (numArgs == 2) {
int items = (int)*numItems[1];
if(*numItems[1] != ITEMS) {
setItems(items);
}
} else if (numArgs>=3) {
printf("Usage: TestStack <numItems> <-help>\n");
exit(1);
} else if(numItems[1] == "-h" || numItems[2] == "-help") {
printf("numItems - Number of items to add to the stack.\n -h (-help) - Shows this help output.\n");
exit(1);
}
/* test code here*/
}
割り当て機能は次のとおりです。
static void setItems(int numItems) {
ITEMS = numItems;
printf("ITEMS IS %d\n",ITEMS);
}
そして私のグローバル変数は
int ITEMS = 11; //Default value.
渡そうとしている本当の価値を実際に得ることができない理由は何ですか?