Ex2.1: feedback: mixed up pointers and references
This commit is contained in:
parent
982866a7e6
commit
c49a9f3e5b
2 changed files with 27 additions and 27 deletions
|
@ -83,8 +83,8 @@ void orderptr( int* a, int* b ) {
|
|||
return;
|
||||
}
|
||||
|
||||
int* tmp = a;
|
||||
a = b;
|
||||
b = tmp;
|
||||
int tmp = *a;
|
||||
*a = *b;
|
||||
*b = tmp;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -15,9 +15,9 @@
|
|||
|
||||
void sort( const char** A, const int size );
|
||||
#if !USE_PTR
|
||||
void order( const char* a, const char* b );
|
||||
void order( const char* &a, const char* &b );
|
||||
#else
|
||||
void orderptr( const char* &a, const char* &b );
|
||||
void orderptr( const char* *a, const char* *b );
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -78,34 +78,14 @@ void sort( const char** A, const int size ) {
|
|||
#if !USE_PTR
|
||||
order( A[ i ], A[ j ] );
|
||||
#else
|
||||
orderptr( A[ i ], A[ j ] );
|
||||
orderptr( &A[ i ], &A[ j ] );
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if !USE_PTR
|
||||
void order( const char* a, const char* b ) {
|
||||
#if VERBOSE
|
||||
std::cout << "Order: " << a << std::endl;
|
||||
#endif
|
||||
// b is greater or equal to a, do nothing
|
||||
if ( strcmp(a, b) > 0) {
|
||||
#if VERBOSE
|
||||
std::cout << "Ordering OK" << std::endl;
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
#if VERBOSE
|
||||
std::cout << "Ordering ToDo" << std::endl;
|
||||
#endif
|
||||
|
||||
const char* tmp = a;
|
||||
a = b;
|
||||
b = tmp;
|
||||
}
|
||||
#else
|
||||
void orderptr( const char* &a, const char* &b ) {
|
||||
void order( const char* &a, const char* &b ) {
|
||||
#if VERBOSE
|
||||
std::cout << "Order: " << a << ", " << b << std::endl;
|
||||
#endif
|
||||
|
@ -123,4 +103,24 @@ void orderptr( const char* &a, const char* &b ) {
|
|||
a = b;
|
||||
b = tmp;
|
||||
}
|
||||
#else
|
||||
void orderptr( const char* *a, const char* *b ) {
|
||||
#if VERBOSE
|
||||
std::cout << "Order: " << a << std::endl;
|
||||
#endif
|
||||
// b is greater or equal to a, do nothing
|
||||
if ( strcmp(*a, *b) > 0) {
|
||||
#if VERBOSE
|
||||
std::cout << "Ordering OK" << std::endl;
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
#if VERBOSE
|
||||
std::cout << "Ordering ToDo" << std::endl;
|
||||
#endif
|
||||
|
||||
const char* tmp = *a;
|
||||
*a = *b;
|
||||
*b = tmp;
|
||||
}
|
||||
#endif
|
||||
|
|
Reference in a new issue