小编Abh*_*eet的帖子

使用realloc动态扩展数组

我已经编写了以下代码来清楚地了解malloc和realloc.我使用malloc初始化指针然后使用realloc,我增加了数组的大小.但是当我运行代码时,我得到以下错误.

#include<stdio.h>
#include<stdlib.h>

int main()
{
    char *p;
    p = malloc(10);
    p = " this is it";
    printf("\n%s", p);
    p = realloc(p, 14);
    p[11] = 'A';
    p[12] = 'B';
    p[13] = 'C';
    printf("\n %s", p) ;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

ajay@ajay-K54L:~$ gcc te.c 
ajay@ajay-K54L:~$ ./a.out

*** glibc detected *** ./a.out: realloc(): invalid pointer: 0x000000000040071c ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x7e626)[0x7fb111e88626]
/lib/x86_64-linux-gnu/libc.so.6(realloc+0x2de)[0x7fb111e8d3ee]
./a.out[0x4005dc]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x7fb111e2b76d]
./a.out[0x4004d9]
======= Memory map: ========
00400000-00401000 r-xp 00000000 08:03 3027043                            /home/ajay/a.out
00600000-00601000 r--p 00000000 08:03 3027043                            /home/ajay/a.out
00601000-00602000 …
Run Code Online (Sandbox Code Playgroud)

c malloc pointers realloc

4
推荐指数
1
解决办法
6338
查看次数

主函数可以有默认参数值吗?

如何为main函数参数设置默认值,如用户定义的函数?

c++ program-entry-point arguments default-value

3
推荐指数
1
解决办法
4029
查看次数

如何在 perfmon 工具中保存计数器?

perfmontool 中Pages/secAvg Disk Queue Length并且% Performance Time是其中存在的默认计数器。我想sqlservr在 perfmon 工具中监控计数器,所以我添加了sqlservr. 如果我关闭 perfmon 工具并重新打开,则无法看到我添加的 sqlservr 计数器。如何保存它以便我可以在打开时随时监控?还是sqlservr每次打开都需要添加计数器perfmon

windows performance perfmon

3
推荐指数
1
解决办法
4443
查看次数

理解神秘的C++语句

我来自使用VB.NET的.NET编程,这是我对基于Arduino的应用程序的第一个C开发.

通过阅读Arduino头文件(寻找类似于某种.ToString方法的东西__FlashStringHelper),我偶然发现了下一个#define

#define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal)))
Run Code Online (Sandbox Code Playgroud)

首先我明白了:

这是一个带有参数名称的宏,string_literal此参数以某种方式用于括号内的表达式中.就这样!

什么是这些<,>标志和*指针突然签署?

c++ arduino reinterpret-cast

2
推荐指数
1
解决办法
2220
查看次数

C:似乎无法找到错误[Do-While循环]

该计划很简单:

1)它接受用户的名字2)询问他购买了多少物品以及花费多少3)如果输入任何> 10项,则表示"请输入大于0(零)且小于10(10)的数字你想继续生成另一个账单吗?(是/否)"4)用户输入'Y',它应该把他带到do循环的开头并重新开始.

介于两者之间的一切都很好.这是代码:

int main()
{
    char item[10][10], answer = 'null', name[10];
    int price[10], total_item, total_price = 0, i, j = 0, a;
    float service_tax = 0, vat = 0,total_bill = 0,  bill = 0;

    printf ("Please enter your name: ");
    scanf ("%s", name);

    do
    {
        printf ("\n Enter the total items purchased (must be more than 0 (zero) and less than 10 (ten): ");
        scanf (" %d", &total_item);

        if(total_item > 0 && total_item <= 10)
    {
        for(i = …
Run Code Online (Sandbox Code Playgroud)

c loops do-while

-2
推荐指数
1
解决办法
143
查看次数