相关疑难解决方法(0)

如何找到阵列的长度?

有没有办法找到一个数组有多少个值?检测我是否已到达阵列的末尾也可以.

c++ arrays

496
推荐指数
15
解决办法
130万
查看次数

将数组和数组指针传递给C中的函数之间的区别

C中两个函数有什么区别?

void f1(double a[]) {
   //...
}

void f2(double *a) {
   //...
}
Run Code Online (Sandbox Code Playgroud)

如果我要在一个相当长的数组上调用这些函数,这两个函数的行为会不同,它们会占用更多的空间吗?

c arrays function parameter-passing space-efficiency

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

如何从函数返回数组?

如何从方法返回数组,我该如何声明它?

int[] test(void); // ??
Run Code Online (Sandbox Code Playgroud)

c++ arrays method-signature

44
推荐指数
3
解决办法
15万
查看次数

如何从函数返回char数组?

我尝试过以下方法:

char[10] testfunc()
{
    char[10] str;

    return str;
}
Run Code Online (Sandbox Code Playgroud)

c++ arrays return function

26
推荐指数
4
解决办法
12万
查看次数

难以理解的函数签名 - 返回对N个对象数组的引用

我遇到了以下签名

double(&rotate_vec(double(&val)[4]))[4];
Run Code Online (Sandbox Code Playgroud)

在评论中,它"声称" 接受并返回四个元素的数组.我的第一反应是,这甚至看起来不是标准的c ++,但是这个编译:

double(&rotate_vec(double(&val)[4]))[4]
{
    // ... 
    return val;
}

int main()
{
    double ar[4] = { 1, 2, 3, 5 };
    rotate_vec(ar);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)
  1. 这个c ++怎么样?你会怎么看?
  2. 我们不能从函数返回一个数组,只是指针,或者我们可以吗?

c++

25
推荐指数
2
解决办法
1258
查看次数

在C++中传递和分配数组作为指针的后果是什么?

作为背景,我不久前给出了这篇文章的答案:

在函数中返回数组

它无意中开始了一个关于指针与C++中的数组的长链注释链,因为我试图过度简化并且我做了"数组是指针"的声明.虽然我的最终答案听起来相当不错,但只是在对我收到的很多评论进行了大量编辑之后.

这个问题并不是拖钓诱饵,我理解指针和数组不是一回事,但C++语言中的一些可用语法肯定会使它们在很多情况下表现得非常相似.(仅供参考,我的编译器已i686-apple-darwin9-g++-4.0.1开启OS X 10.5.8)

例如,这段代码编译并运行就好了(我意识到这x[8]是一个潜在的分段错误):

  //this is just a simple pointer                                                                                                                                                            
  int *x = new int;
  cout << x << " " << (*x) << " " << x[8] << endl; //might segfault                                                                                                                          

  //this is a dynamic array                                                                                                                                                                  
  int* y = new int[10];
  cout << y << " " << (*y) << " " << y[8] << endl;

  //this is a static array                                                                                                                                                                   
  int z[10];
  cout << z << " " << …
Run Code Online (Sandbox Code Playgroud)

c++ arrays pointers

11
推荐指数
3
解决办法
754
查看次数

从函数返回数组

这是我的代码

double hour_payload_add(int entries , double array[])
{
    int index=0 ,k=0;
    int totalpayload=0;
    double returnarray[entries/120];
    while(k< entries)
    {
           totalpayload = totalpayload + array[k];
            if(k%120==0)
                {
                returnarray[index] = totalpayload;
                index++;
                totalpayload=0;
                }

    }

return returnarray;
}
Run Code Online (Sandbox Code Playgroud)

我在这里打过电话

double hourgraph[hrentries];
 hourgraph= hour_payload_add(entries , graph);
Run Code Online (Sandbox Code Playgroud)

因为我想返回一个数组我应该怎么做才能返回而不使用指针?

c++ arrays

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

返回局部变量C++的指针

我需要创建一个返回指向int的指针的函数.

像这样:

int * count()
{
    int myInt = 5;

    int * const p = &myInt;

    return p;
}
Run Code Online (Sandbox Code Playgroud)

由于指针只是一个地址,因此在调用此函数后,变量myInt将被销毁.如何在此方法中声明一个int,它将在内存中保留一个位置,以便我以后通过返回的指针访问它?我知道我可以在函数外部声明int,但是我想在函数内部声明它.

在此先感谢您的帮助!

c++ pointers function

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

我应该尝试返回阵列,还是有更好的解决方案?

一个问题设置 ++的人学习C是

写一个简短的程序来模拟从塔上掉下来的球.首先,应该要求用户以米为单位的塔的初始高度.假设正常重力(9.8 m/s2),并且球没有初始速度.让程序在0,1,2,3,4和5秒后输出球高于地面的高度.球不应该在地下(高度0).

在开始使用C++之前,我有一个合理的,但主要是自学成才的Java知识.所以看看这个问题似乎应该分成两部分

  • 输入类
  • 输出类
  • 计算课
  • 物理常数类(问题设定者推荐)
  • 控制器('main')类

输入类将询问用户的起始高度,该起始高度将传递给控制器​​.控制器会给计算类提供这个和几秒钟(5),这将创建一个结果数组并将其返回给控制器.控制器会将结果数组交给输出类,然后将它们打印到控制台.

我将实际代码放在底部,但可能不需要.

您可能已经看到问题,尝试返回一个数组.我不问如何避开这个问题,有解决方法在这里这里.我问,问题是设计糟糕的结果吗?我的程序是否应该以不同的方式构建,出于性能,维护或样式的原因,我不会尝试返回像对象一样数组

这是代码(与尝试返回数组不同);

main.cpp中

/*
 * Just the main class, call other classes and passes variables around
 */
#include <iostream>
#include "dropSim.h"
using namespace std;

int main()
{
    double height = getHeight();
    int seconds = 5;
    double* results = calculateResults(height, seconds);
    outputResults(results);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

getHeight.cpp

/*
 *  Asks the user for a height from which …
Run Code Online (Sandbox Code Playgroud)

c++ arrays

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

为什么返回类型不是函数类型而是c ++中的函数指针?

int method1() {
    return 0;
}

decltype(method1) method2() {
    return method1;
}
Run Code Online (Sandbox Code Playgroud)

我编译我的代码,得到一个错误:'method2'声明为函数返回一个函数,然后我将返回类型更改为函数指针,它工作,我只是想为什么它是这样.

decltype(method1) *method2() {
    return method1;
}
Run Code Online (Sandbox Code Playgroud)

c++

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