相关疑难解决方法(0)

数组名称和指向第一个元素的另一个指针有什么区别?

有一个数组A,定义为int A[10],并且有另一个包含基址的指针,定义为int *ptr = A.

我最近看过这篇文章 如何找到'sizeof'(一个指向数组的指针)?,我无法弄清楚A和ptr之间的区别是什么.他们俩都不只是拥有阵列的基地址吗?

我们A[i] and ptr[i]现在可以互换使用,对于一些小于10的整数.

那么为什么使用sizeof()得到的结果有所不同?

c++ arrays pointers

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

如何确定存储在数组中的项目数?

我有一个大小的字符串数组5,我有n元素.我怎么能确定n?我试过sizeof(array)/sizeof(array[0]),但是返回数组的大小,即5.我的代码是:

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string array[5];
    array[0] = "pie";
    array[1] = ":P";
    array[2] = "YELLOW";
    cout << sizeof(array)/sizeof(array[0]);
}
Run Code Online (Sandbox Code Playgroud)

c++ c++11

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

2D指针初始化

如何使用指针初始化2D数组.

int *mapTable[] = { {1,10} , {2,20} , {3,30} , {4,40} };  // It's giving error
Run Code Online (Sandbox Code Playgroud)

int *mapTable是一个错误.

我怎样才能正确申报?

c c++

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

不兼容的类型 - 是因为数组已经是一个指针?

在下面的代码中,我创建了一个基于书籍结构的对象,并且让它拥有多个"书籍",我设置的是一个数组(定义/启动的对象,即).但是,每当我去测试我的指针知识(练习帮助)并尝试制作一个指向创建对象的指针时,它就会给我错误:

C:\ Users\Justin\Desktop\Project\wassuip\main.cpp | 18 |错误:将"书籍 " 分配给"书籍*[4]"|*时出现不兼容的类型

请问,这是因为对象book_arr []已被视为指针,因为它是一个数组?谢谢(C++新手,只是想验证).

#include <iostream>
#include <vector>
#include <sstream>

#define NUM 4

using namespace std;

struct books {
    float price;
    string name;
    int rating;
} book_arr[NUM];

int main()
{
    books *ptr[NUM];
    ptr = &book_arr[NUM];

    string str;

    for(int i = 0; i < NUM; i++){
        cout << "Enter book name: " << endl;
        cin >> ptr[i]->name;
        cout << "Enter book price: " << endl;
        cin >> str;
        stringstream(str) << ptr[i]->price;
        cout << …
Run Code Online (Sandbox Code Playgroud)

c++

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

使用C++将堆栈中的数组数组复制到堆中的数组数组中

好的,所以我有一个模型类,它包含指向(将会是)一个point3对象数组的指针:

point3* _vertices_colors;
Run Code Online (Sandbox Code Playgroud)

Point3具有以下typedef:

typedef GLfloat point3[3];
Run Code Online (Sandbox Code Playgroud)

基本上将point3对象数组作为数组数组.然后在派生类的构造函数中,我为我想要存储的顶点和颜色的数量分配内存,如下所示:

_vertices_colors = new point3[16];
Run Code Online (Sandbox Code Playgroud)

这意味着我的对象有8个顶点,并存储了自己的颜色.然后我在堆栈上定义以下数组,准备复制到指针:

point3 verticesColors[] = {
                            {1.0, 1.0, 1.0}, {1.0, 0.0, 0.0},
                            {-1.0, 1.0, 1.0}, {1.0, 0.0, 0.0},
                            {-1.0, -1.0, 1.0},{1.0, 0.0, 0.0},
                            {1.0, -1.0, 1.0},{1.0, 0.0, 0.0},
                            {1.0, 1.0, -1.0}, {1.0, 0.0, 0.0},
                            {-1.0, 1.0, -1.0}, {1.0, 0.0, 0.0},
                            {-1.0, -1.0, -1.0},{1.0, 0.0, 0.0},
                            {1.0, -1.0, -1.0},{1.0, 0.0, 0.0}
                        };
Run Code Online (Sandbox Code Playgroud)

然后,我使用for循环复制到堆上的数组:

for(int i = 0; i < 16; i++)
{
    *_vertices_colors[i,0] = *verticesColors[i, 0];
    *_vertices_colors[i,1] = *verticesColors[i, 1]; …
Run Code Online (Sandbox Code Playgroud)

c++ pointers

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

C++动态大小数组

我需要你对C /С++数组的帮助.我已经用Python编程了三年,它的数组(被称为list)非常容易使用.

>>> array = [1,2,3,4]
>>> array.append(5)
>>> array
[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

正如我在C/C++中读到的,我需要创建一个指向数组的指针.请你做一个包含数组的小型草图,char并且只有一个方法附加,它被调用append并接收a char作为参数.此方法将数组的大小增加1并将给定的数组添加char到此数组中.

有人可能认为这是一个功课,但我无法理解数组,指针和内存分配如何工作的原理.我想这并不难,但它是在像Python这样的语言之后发生的,因为我并不关心Python中的这些东西.请问您能提供一小段代码并附上解释吗?

提前致谢!

c++ arrays char

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

通过构造函数初始化char [40]

我想初始化对象属性,但它只是继续说类型不匹配.怎么纠正呢?

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

using namespace std;
class Student{
public:
    int nr_ID;
    char nazwisko[40];
    char imie[40];
    double punkty;
    Student* next;

    Student(int nr_ID, char nazwisko[40], char imie[], double punkty){
        this->nr_ID = nr_ID;
        this->nazwisko = nazwisko;//HERE
        this->imie = imie;//HERE
        this->punkty = punkty;
        next = NULL;
    }

    ~Student(){}

};
Run Code Online (Sandbox Code Playgroud)

c++ char

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

为什么字符数组之间的比较不起作用?

char a[1][2];
char b[1][2];

a[0][0] = 'a';
a[0][1] = 'b';
b[0][0] = 'a';
b[0][1] = 'b';

if(a[0] == b[0]){
   cout << "worked\n";
}
Run Code Online (Sandbox Code Playgroud)

所以据我所知,字符数组之间的比较并不像你期望的那样工作.if语句不会执行,因为条件a == b返回false.为什么是这样?

c++ arrays pointers operators

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

具有char数组参数的函数

我正在尝试编写一个用于在C中为PIC微控制器打印文本的函数(我认为它基于gcc)。

void print(char[] text);

void print(char[] text)
{
    for(ch = 0; ch < sizeof(text); ch ++)
    {
        do_something_with_character(text[ch]);
    }
}
Run Code Online (Sandbox Code Playgroud)

并这样称呼它:

print("some text");
Run Code Online (Sandbox Code Playgroud)

我收到有关错误括号的编译器投诉。

  1. 这有什么问题?

  2. 在这种情况下,如何使用char数组指针?

c arrays pointers parameter-passing

0
推荐指数
3
解决办法
2万
查看次数

2d数组的动态内存分配,其中列的大小不同

我想用c ++语言动态创建一个二维数组.但是在那个2d数组列中应该有不同的大小.我的意思是说2d数组不应该是M*N.

它应该是......

1 2 next line
3 4 5 next line
2 3 4 5 next line
5 next line
4 5 7
Run Code Online (Sandbox Code Playgroud)

我能够以上述方式创建二维数组,但如何显示数组内容不断为我创建一个问题.请有人解释我如何解决这个问题.

c++ arrays 2d

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

标签 统计

c++ ×9

arrays ×5

pointers ×4

c ×2

char ×2

2d ×1

c++11 ×1

operators ×1

parameter-passing ×1