相关疑难解决方法(0)

array [ROWS] [COLS]和**数组有什么区别

为什么这些功能原型不相同?

void print_matrix(char *name, int SX, int SY, int m[SX][SY])

void print_matrix(char *name, int SX, int SY, int **m)
Run Code Online (Sandbox Code Playgroud)

c

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

sizeof(array)在此strstr重新实现中未提供预期值

我已经将这个简单的strstr重新制作作为练习,但是有一个我不理解的错误

#include <iostream>
#include "windows.h"

using namespace std;

int strstr2(char *arr, char *findme)
{
    const int sizearr = sizeof(arr) / sizeof(char);
    const int sizefindme = sizeof(findme) / sizeof(char);

    int j=0;
    for(int i=0; i<sizearr; i++)
    {
        if(arr[i] == findme[j])
        {
            // Match
            if(j == sizefindme-1)
                return i;
            else
                j++;
        }
        else
        {
            j = 0;
        }
    }
    return -1;
}


int main (int argc, char **argv) 
{
    char arr[] = "I'd like 2% milk";
    char toBeFound[] = "like";

    int …
Run Code Online (Sandbox Code Playgroud)

c++ arrays pointers sizeof

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

当二维数组和多维数组作为C语言的函数参数时

可能重复:
如何在C++中使用数组?

一维数组作为函数参数:

#include <stdio.h>
#include <string.h>

int func(int a[], int n)
{
    int i;
    for(i = 0; i < n; i++)
        printf("%d ", a[i][j]);
}

int main(void)
{   
    int a[2] = {1,2};
    func(a, 2);
}
Run Code Online (Sandbox Code Playgroud)

它编译并正确运行.

但是当二维数组作为函数参数时:

#include <stdio.h>
#include <string.h>

int func(int a[][], int n)
{
    int i, j;
    for(i = 0; i < n; i++)
        for(j = 0 ; j < n; j++)
            printf("%d ", a[i][j]);
        printf("\n");
}

int main(void)
{   
    int a[2][2] = {{1,2}, {3,4}};
    func(a, …
Run Code Online (Sandbox Code Playgroud)

c multidimensional-array

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

如何找出数组的长度?

std::string array[] = { "one", "two", "three" };
Run Code Online (Sandbox Code Playgroud)

如何找出array代码的长度?

c++ arrays size

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

如何用C++中的函数打印二维数组?

我正在尝试创建一个打印二维数组的函数。我做了一个打印一维数组的操作。

 #include <iostream>
 using namespace std;

void printArray (int theArray[],int sizeOfArray);
int main ()

{
int array1[3] = {1,3,7};
int array2[5] = {123,5,23,2,324};

printArray(array1, 3);
printArray(array2, 5);

}  

void printArray (int theArray[],int sizeOfArray){


for (int x=0; x<sizeOfArray; x++) {
    cout<<theArray[x] <<" ";
}
cout<<endl;  
}
Run Code Online (Sandbox Code Playgroud)

我编写了这些代码来打印二维数组,但失败了。

#include <iostream>
using namespace std;

void printArray (int theArray[][],int sizeOfRow, int sizeOfCol);

int main ()

{
int array[2][3] = {{1,3,7},{5,3,2}};

printArray(array, 2,3);


}

void printArray (int theArray[][],int sizeOfRow, int sizeOfCol){


for (int x=0; x<sizeOfRow; …
Run Code Online (Sandbox Code Playgroud)

c++ arrays user-defined-functions

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

数组下标符号和derefencing

大家好我对以下代码有疑问,并想验证我的一些断言.

int array[] = {1,2,3,4};
int* ptr = &array[1];
Run Code Online (Sandbox Code Playgroud)

是否&array[1]意味着我得到数组的地址并添加1,deference该地址以查看实际的整数然后获取存储在该地址中的整数的地址?

这是怎么做到的?是否有一个operator [](int index)用于返回引用的数组,然后我们获取它的地址?

我想了解机器实际上在做什么以及语言语义.

c++

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

C++ 编译错误:数组具有不完整的元素类型“int []”

我正在用 C++ 编写康威的生命游戏。我收到一个编译时错误,这与我将二维数组传递给方法的方式有关:

gameoflife.cpp:5:25: error: array has incomplete element type 'int []'
void print_game(int game[][], int SIZE);

gameoflife.cpp:6:23: error: array has incomplete element type 'int []'
void run_game(int game[][], int SIZE);

gameoflife.cpp:7:23: error: array has incomplete element type 'int []'
void set_cell(int game[][], int i, int j, int next[][], int SIZE);
Run Code Online (Sandbox Code Playgroud)

等等。

我的代码的开头是:

void print_game(int game[][], int SIZE);
void run_game(int game[][], int SIZE);
void set_cell(int game[][], int i, int j, int next[][], int SIZE);
Run Code Online (Sandbox Code Playgroud)

显然问题从这里开始。

在方法中传递二维数组有什么问题?我应该改用 ** 吗?

c++ methods multidimensional-array

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

char指针比较错误

使用C++ MFC和Visual Studio 2008.

抱歉新手问题,但我不确定为什么这不起作用.我正在创建一个函数,在char *传递给它的XML中找到XML的标准非法字符,但是我得到一个奇怪的错误.

char* XMLIllegalCharacterParser(char *input){
    char *Temp;
    for (size_t i = 0; i < strlen(input); i++){
        if(input[i] == "\"" || input[i] == "\'" || input[i] == "&")
    }
    return Temp;
}

1>.\FileImport.cpp(868) : error C2446: '==' : no conversion from 'const char *' to 'int'
Run Code Online (Sandbox Code Playgroud)

我不能为我的生活弄清楚为什么它不起作用.我有什么错误的语法?

PS:我知道那里我只有3个角色.我收到了这个错误,我想在添加其他两个之前修复它.

在这里我的后代码:

char* XMLIllegalCharacterParser(char *input){
char *Temp;
for (size_t i = 0; i < strlen(input); i++){
    switch(input[i]){
        case '\"':
            strcat_s(Temp, 6, "&quot;");
            break;
        case '\'':
            strcat_s(Temp, 6, "&apos;"); …
Run Code Online (Sandbox Code Playgroud)

c++ string pointers char

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

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

有一个数组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
查看次数