标签: pointers

指针失败(C++)

可能重复:
c ++警告:局部变量的地址

char* strdup(const char* s)
{
    char dup[strlen(s)];
    for (int i = 0; i<strlen(s); i++)
    {
        dup[i]=s[i];
    }
    return dup;
}
Run Code Online (Sandbox Code Playgroud)

该函数应该保存已向后读取的新数组和另一个插槽.当我编译它时,我收到错误"警告:返回本地变量'dup'的地址",当我运行程序时,它返回内存地址.

c++ memory pointers memory-address

0
推荐指数
1
解决办法
249
查看次数

在C++中添加指针的位置

我有int foo,其中包含一个整数的地址.如何在一行中添加foo指向的整数?

解:

(*(int *)foo)+=1
Run Code Online (Sandbox Code Playgroud)

这就是我处理它的方式.

c++ pointers

0
推荐指数
1
解决办法
114
查看次数

C中的函数指针问题

#include <stdlib.h>

int int_sorter( const void *first_arg, const void *second_arg )
{
    int first = *(int*)first_arg;
    int second = *(int*)second_arg;
    if ( first < second )
    {
        return -1;
    }
    else if ( first == second )
    {
        return 0;
    }
    else
    {
        return 1;
    }
}

int main()
{
    int array[10];
    int i;
    /* fill array */
    for ( i = 0; i < 10; ++i )
    {
        array[ i ] = 10 - i;
    }
    qsort( array, 10 …
Run Code Online (Sandbox Code Playgroud)

c pointers casting

0
推荐指数
1
解决办法
220
查看次数

标准C中指针整数错误的比较

我正在将我的代码从变量更改为指针,我遇到了一些麻烦.曾经使用过的地方(很大程度上缩写):

int best = 0;
int max = 10;
if (max > best) {
    best = max;
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用指针,以便我可以使用pass-by引用将其抽象为函数.

int *best;
*best = 0;
int max = 10;
if (max > *best) {
    *best = max;
}
Run Code Online (Sandbox Code Playgroud)

我在线上遇到了分段错误(max > *best).你能告诉我哪里出错了吗?

c pointers

0
推荐指数
1
解决办法
130
查看次数

如何完全反转C样式字符串

我想完全反转C样式字符串(以null结尾),即包含空字符.

null字符应该是反向字符串中的第一个元素.

c string algorithm pointers

0
推荐指数
1
解决办法
8465
查看次数

处理多重继承时如何对齐指针?

假设我们有一个具体的类A和一个抽象类B.

考虑一个具体的C,它继承自A和B,并实现B:

class C : public A, public B  
{  
/* implementation of B and specific stuff that belongs to C */  
};
Run Code Online (Sandbox Code Playgroud)

现在我定义一个签名是什么的函数 void foo(B* b);

这是我的代码,我可以假设每个指向B的指针都是A和B.在foo的定义中,如何获得指向A的指针?一个讨厌但有效的技巧是将指针对齐,如下所示:

void foo(B* b)  
{  
    A* a = reinterpret_cast<A*>(reinterpret_cast<char*>(b) - sizeof(A));
    // now I can use all the stuff from A  
}
Run Code Online (Sandbox Code Playgroud)

请记住,C没有超类型,实际上,有许多类似于C的类,只有A和B.可以自由地质疑我的逻辑和这个设计样本,但问题只是关于指针对齐.

c++ pointers multiple-inheritance memory-alignment vtable

0
推荐指数
1
解决办法
288
查看次数

为什么这些指针差异导致不同的结果?

假设我有一些typedef struct {int b;} some_t;指向a这种结构的指针.那为什么呢

(*a).b = 5;
Run Code Online (Sandbox Code Playgroud)

不一样的

some_t c = *a;
c.b = 5;
Run Code Online (Sandbox Code Playgroud)

c struct pointers typedef

0
推荐指数
1
解决办法
79
查看次数

检测指针是否指向......的方法,究竟在哪里?

char* cc = "Something string like";
char* ccn = new char[2];
ccn[0] = 'a';
ccn[1] = '\0';
cout << cc;
Run Code Online (Sandbox Code Playgroud)

第二个指针,为了防止内存泄漏,应该是delete[]'但是如何检测指针是否实际指向新的内存(如第一行中的那个)?第一个字符串在哪里创建?

c++ pointers

0
推荐指数
1
解决办法
101
查看次数

在C中初始化一个指向结构的指针数组

我有一个指向结构的指针数组.我想将数组中的每个元素初始化为NULL.我将使用此数组来动态添加和删除条目,因此我希望能够针对NULL进行测试,以查看该索引是否为空.

我试着这样做:

struct mystructure *cxs[MAXNOCXS];

int cx_init(void)
{
    int i = 0;
    for (i=0; i<MAXNOCXS; i++)
        cxs[i] == NULL;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是我的编译器告诉我:

error: statement with no effect
Run Code Online (Sandbox Code Playgroud)

指的是这条线 cxs[i] = NULL;

指针数组是否在C中自动初始化为NULL?如果不是我怎么能这样做?

c null struct pointers initialization

0
推荐指数
1
解决办法
592
查看次数

C++问题.关于容器和类的实例

A* a = new A(x,y);
set<A> aset;
aSet.insert(a);
Run Code Online (Sandbox Code Playgroud)

我这样做了 出了错误.我该如何解决?

谢谢!!!

c++ memory containers pointers stl

0
推荐指数
1
解决办法
88
查看次数