Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“做一堆”;“动态”;(C)_C - Fatal编程技术网

“做一堆”;“动态”;(C)

“做一堆”;“动态”;(C),c,C,对于一项任务,我要使代码实现完全动态。我们的教授为我们提供了一个.c文件,它有几个实现,比如pop和push。我们预定义的堆栈容量是128。我们要通过检查堆栈上的推操作是否超过预定义的堆栈容量,使其成为“动态的” 我有点搞不清楚该怎么做。我不能在某个地方包含一个if语句来检查容量是否大于堆栈,如果大于,只需分配两倍的容量并创建一个新的堆栈就可以了吗 感谢您的任何想法。将评论转换为答案 是的,您可以在某个地方添加if语句,但是push()函数是最好的方法。这是最好的,因为这是一个地方,你知道,更多

对于一项任务,我要使代码实现完全动态。我们的教授为我们提供了一个.c文件,它有几个实现,比如pop和push。我们预定义的堆栈容量是128。我们要通过检查堆栈上的推操作是否超过预定义的堆栈容量,使其成为“动态的”

我有点搞不清楚该怎么做。我不能在某个地方包含一个if语句来检查容量是否大于堆栈,如果大于,只需分配两倍的容量并创建一个新的堆栈就可以了吗

感谢您的任何想法。

将评论转换为答案


是的,您可以在某个地方添加
if
语句,但是
push()
函数是最好的方法。这是最好的,因为这是一个地方,你知道,更多的能力是需要的,如果你在目前的限制。除非您有一个“增加容量”函数,否则只有
push()
函数需要增加堆栈,因此这是测试是否需要向堆栈添加更多内存的唯一相关位置


请注意,当前堆栈大小有一个固定的上限。你需要把它变成一个变量。请记住仔细考虑初始化条件。

是的,您可以在某个地方添加
if
语句,但是
push
函数是执行此操作的最佳位置。这是最好的,因为这是一个你知道如果你在当前限制下需要更多容量的地方。请阅读:@JonathanLeffler:“这是一个你知道如果你在当前限制下需要更多容量的地方”你应该将其作为答案发布:'D