2015-03-19 141 views
0

我正在尝试从视频练习结构我的课程只提供给我唯一的区别是他使用的是旧版本的视觉工作室,当我尝试插入代码时,我得到错误源没有找到chkstk.asm我不知道如何获得这个和谷歌搜索没有给我带来任何东西。这是我迄今为止的代码,如果它提供任何帮助。老实说,视觉工作室给我带来了很多未知的新问题,我想回到我之前使用的简单文本编辑器。未找到源chkstk.asm

#include <stdio.h> 
#include <stdlib.h> 
#include<string.h> 
typedef struct{ 
char name[40]; 
short int number; 
double wholesale; 
double retail; 
short int onHand; 

}PRODUCT; 

void fillInProducts(PRODUCT[], int* pSize); 
void fillInProducts(PRODUCT inventory[], int *pSize){ 
    strcpy_s(inventory[*pSize].name, 40,"Handsaw"); 
    inventory[*pSize].number = 3456; 
    inventory[*pSize].onHand = 12; 
    inventory[*pSize].wholesale = 12.34; 
    inventory[*pSize].retail = 23.99; 
    (*pSize)++; 
} 

main(){ 


int effectiveSize=0; 
    PRODUCT hammer = { "Hammer", 1234, 5.50, 8.99, 4 }; 
    PRODUCT inventory[500]; 
    fillInProducts(inventory, &effectiveSize); 
    system("pause"); 

} 
+0

这很有趣 - 当我谷歌“chkstk.asm”我发现很多有用的信息,包括其他堆栈溢出帖子很像你的。 – StilesCrisis 2015-03-19 07:44:00

回答

0

这是编译器运行时支持的一部分。你是否拥有它取决于你使用的VS版本。编译器将在具有较大堆栈帧的函数开始时将堆栈检查调用生成为chkstk。一些更多的细节在这里:http://www.codeguru.com/cpp/v-s/debug/article.php/c19241/Adventures-with-chkstk.htm

main功能有一个非常大的堆栈帧,由于PRODUCT大阵列。这是堆栈检查调用的来源。出于您的目的,您可以忽略它。您对调试运行时堆栈检查代码不感兴趣。只需跨过它并调试你的代码。

我必须考虑您的main函数。它应该是int main(void)