Es von mir will, um die folgende Funktion implementieren:Fehler: Streu ' 240' in Programm
void calc ( double* a, double* b, int r, int c, double (*f) (double) )
Parameter a, r, c und f eingegeben werden und b ausgegeben wird. "A" und "b" sind 2d Matrizen mit "r" Zeilen und "c" Spalten. „F“ eine Funktion ist, die Zeiger auf jede Funktion des folgenden Typs zeigen kann:
double function‐name ( double x ) {
…
}
Funktion calc
in Matrix ein jedes Element umwandelt, das heißt, aij, bij, um = f (aij) in einer Matrix b.
ich die calc
Funktion wie folgt implementieren, und es in einem Programm setzen, es zu testen:
#include <stdlib.h>
#include <iostream>
using namespace std;
double f1(double x){
return x * 1.7;
}
void calc ( double* a, double* b, int r, int c, double (*f) (double) )
{
double input;
double output;
for(int i=0;i<r*c;i++)
{
input=a[i];
output=(*f)(input);
b[i]=output;
}
}
int main()
{
//input array:
int r=3;
int c=4;
double* a = new double[r*c];
double* b = new double[r*c];
//fill "a" with test data
//...
for (int i=0;i<r*c;i++)
{
a[i]=i;
}
//transform a to b
calc (a, b, r, c, f1);
//print to test if the results are OK
//...
for (int i=0;i<r*c;i++)
{
b[i]=i;
}
return 0;
}
Das Problem ist, dass ich es nicht zusammenstellen können. Dies ist die Ausgabe von DEVC++, wenn ich auf Compile klicken und Ausführen Taste:
Was ist los?
Ich freue mich über jeden Kommentar, um die Implementierung effizienter zu machen.
'\ 240' ist nicht brechender Raum in der iso8859-1 Kodierung, also ist das Geheimnis, wie diese ganz speziellen Charaktere dort hineingekommen sind. Hast du den Code in Word geschrieben oder so? – Wintermute
@Wintermute hehe Ich habe tatsächlich überprüft, dass das OP nicht dasselbe war [Person, die ich vor 16m traf] (http://StackOverflow.com/questions/29311287/bad-access-either-in-stdmap-or-stdstring -destructor # comment46816709_29311287) :) – sehe
Der Code kompiliert für mich gut (g ++ -o test.exe test.cpp) ohne irgendwelche Änderungen. Hast du die Linie 10 überprüft? – jensa