Tag: 大小

C ncurses阻止resize

我现在开始学习如何使用ncurses,并根据程序启动时的行数和列数进行一些计算。 对我来说,动态计算来管理显示对我来说太麻烦了,所以我需要找到一种方法来阻止shell在执行期间resize,这可能吗?

如何存储多达1,000,000,000个元素

#include #include #include int max_b(int,int); int max(int[],int); int main(){ int num_tests; scanf(“%d”,&num_tests); int array_n[num_tests]; int array_b[num_tests]; int i,j; for (i=0;i<num_tests;i++){ scanf("%d %d",&array_n[i],&array_b[i]); } for (j=0;j<num_tests;j++){ int A = 1; int N = array_n[j]; int B = array_b[j]; int max_num_b; max_num_b = max_b(N,B); int array2[max_num_b]; int k; for (k=0;k<max_num_b;k++){ int num_a,num_b; num_a = N-(k+1)*B; num_b = […]

GDB在arrays初始化时报告“当前上下文中没有符号”

我试图初始化一个大小为ceil(buflen / 125.0)的数组,如下所示: long long maxjpg = ceil(buflen/125.0); long long arr[maxjpg]; 我没有收到编译器错误,但GDB报告“当前上下文中没有符号’arr’”。 我发现的唯一修复方法是将数值硬编码到数组大小中,如下所示: long long arr[5]; 我尝试使用const和这些方法的任意组合使用不同的变量类型进行转换。 我知道ceil会返回一个double ,我也尝试过使用它。 初始化值并将其打印如下工作: arr[0] = 25; printf(pos 0 is %d\n”, arr[0]); 输出: pos 0 is 25 在该修改之后打印arr[0]到GDB导致“值已被优化”。 重现的最低可行代码: #include int main(void){ long long size = ceil(123.45); long long arr[size]; return 0; } GDB Fedora 7.4.50.20120120-52.fc17

数组中的元素太多了!

对不起,如果这是一个菜鸟问题:(。 一块C代码。 int array[5]; int cnt; for(cnt = 0; cnt <= 10; cnt+=1) { array[cnt] = cnt; } 应该给出错误吧? 没有! 工作良好! 但那是为什么呢? 似乎 – 在第一行 – 定义了超过双倍大小(11)的数组。 您甚至可以稍后访问数组[5到10]。 这让我很困惑。 定义数组[4或更少]时它停止工作… 提前致谢。

我怎么知道c中指针变量的分配内存大小

在这种情况下,我遇到了一些问题,请问你的想法。 main() { char *p=NULL; p=(char *)malloc(2000 * sizeof(char)); printf(“size of p = %d\n”,sizeof (p)); } 在这个程序中它打印4个(char *)值,但我需要分配多少字节。

我的处理器上C中的int,short和其他数据类型的范围?

我正在读一本旧的C书,据此而言 int范围值从-32768到+32767。 如果我的机器可以容纳比该限制更大的int,我如何找到特定于我的机器的这些数据类型(short,int,long,double,float)的范围? 那有什么方法吗?

我需要在C中创建一个全局数组,其大小由用户输入

基本上我需要在C中创建一个数组的全局变量。 数组将为[n] [22] [n + 1],其中n为3,4,5或6,由用户选择。 有没有办法做到这一点,或者我应该只做数组[6] [22] [7],并且处理它的函数只使用最多n的部分(如果这有意义)? 我之前必须要做一个计算机科学课,但不记得究竟该怎么做。

如何获取多字节字符串的字节大小

如何在Visual C中获取多字节字符串的字节大小? 有function还是我必须自己计算角色? 或者,更一般地说,如何获得TCHAR字符串的正确字节大小? 解: _tcslen(_T(“TCHAR string”)) * sizeof(TCHAR) 编辑: 我只是谈论以空字符结尾的字符串。

为了迭代数组我们应该使用size_t还是ptrdiff_t?

在这篇由Andrey Karpov撰写的题为“关于size_t和ptrdiff_t ”的博客文章中,他展示了一个例子, for (ptrdiff_t i = 0; i < n; i++) a[i] = 0; 但是,我不确定这是否正确,似乎应该如此 for (size_t i = 0; i < n; i++) a[i] = 0; 它是否正确? 我知道我们也应该使用类似memset东西,但让我们完全避免这种情况。 我只问这种类型

某个程序的堆栈内存有多大,是否有可以设置它的编译器标志?

正如标题所述:关于堆栈的大小是否有任何一般的“经验法则”。 我猜测大小会有所不同,具体取决于操作系统,体系结构,缓存大小,可用RAM数量等。 但是一般可以说什么,或者有没有办法找出,有多少堆栈, 这个程序是允许使用的? 作为一个额外的问题是有任何方式(使用编译器标志等(在这里主要考虑C / C ++,但也更通用))堆栈的大小可以由用户设置为固定大小? 顺便说一句,我严格要求出于好奇,我没有堆栈溢出。 🙂